Flask 使用標 Python 內建的 logging
所有與 Flask 相關的消息都用 app.logger
來記錄,其名稱與 app.name 相同
@app.route('/login', methods=['POST'])
def login():
user = get_user(request.form['username'])
if user.check_password(request.form['password']):
login_user(user)
app.logger.info('%s logged in successfully', user.username)
return redirect(url_for('index'))
else:
app.logger.info('%s failed to log in', user.username)
abort(401)
如果沒有設定 log,在 python 中預設的 log 級別是warning
而低於設定級別的 log 內容是不可見的
可以參考文件:Flask logging
如果你沒有前後端分離,而是需要自己使用模板撰寫畫面
可以透過flash()
記錄一條訊息,並只在下一個 request 可以存取
取得變數messages
後就可以在模板內直接使用
並且因為 flashed messages 可以儲存很多,所以可以用迴圈方式一條一條列出
<!doctype html>
<title>My Application</title>
{% with messages = get_flashed_messages() %}
{% if messages %}
<ul class=flashes>
{% for message in messages %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}
{% endwith %}
進而加強使用者體驗
但若是這個訊息若是很多筆,比cookie
還大的話則會失效!
參考文件:Message Flashing